﻿/*======================================================================
== Copyright : BlueCurve (c)
== Licence   : Gnu/GPL v2.x
== Author    : Teddy Albina
== Email     : bluecurveteam@gmail.com
== Web site  : http://www.codeplex.com/BlueCurve
========================================================================*/
using System;
using System.Collections.Generic;
using System.ServiceModel;
using BlueCurve.IRemoteOperations;

namespace CrawlingApplication.Remoting
{
    /// <summary>
    /// Client wcf
    /// </summary>
    public class Tcpclient
    {
        /// <summary>
        /// Ajout un nouveau fichier pour le repository
        /// </summary>
        /// <param name="path">Chemin de fichir à ajouter</param>
        public void AddFileToSchedule(string path)
        {
            ChannelFactory<IRepository> channelFactory = new ChannelFactory<IRepository>("CrawlingApplication.Repository");
            IRepository _repository = channelFactory.CreateChannel();
            _repository.AddFileToSchedule(path);
        }

        /// <summary>
        /// Supprime un fichier du cache du repository
        /// </summary>
        /// <param name="path">Chemin de fichier à supprimer</param>
        public void DeleteFile(string path)
        {
            ChannelFactory<IRepository> channelFactory = new ChannelFactory<IRepository>("CrawlingApplication.Repository");
            IRepository _repository = channelFactory.CreateChannel();
            _repository.DeleteFile(path);
        }

        /// <summary>
        /// Obtiens une liste de fichier à parser
        /// </summary>
        /// <param name="n">Nombre de chemins de fichiers dans la liste</param>
        public List<string> GetListFilesToParse(int n)
        {
            try
            {
                ChannelFactory<IRepository> channelFactory = new ChannelFactory<IRepository>("CrawlingApplication.Repository");
                IRepository _repository = channelFactory.CreateChannel();
                return _repository.GetListFilesToParse(n);
            }
            catch
            {
                return null;
            }
        }
    }
}
